package com.chenfan.mcn.service;

import com.chenfan.mcn.dao.MessageInfoMapper;
import com.chenfan.common.extension.mybatisplus.enhanced.EnhancedService;
import com.chenfan.mcn.model.MessageInfo;

/**
 * <p>
 * 消息信息表 服务类
 * </p>
 *
 * @author wulg
 * @since 2021-07-23
 */
public interface MessageInfoService extends EnhancedService<MessageInfoMapper, MessageInfo> {

    /**
     * addMessageInfo
     *
     * @param messageInfo
     * @return
     */
    boolean addMessageInfo(MessageInfo messageInfo);

    /**
     * 归档编码幂等
     * @param billCode
     * @param archivingCode
     * @param tenantId
     * @return
     */
    boolean idempotentArchivingCode(String billCode, String archivingCode, Long tenantId);

    /**
     * 按消息topic判断消息头是否存在
     * @param messageTopic
     * @param messageHeader
     * @param tenantId
     * @return
     */
    boolean existMessageHeader(String messageTopic, String messageHeader, Long tenantId);

    /**
     * 通过消息Key获取消息
     * @param messageTopic
     * @param messageKey
     * @param tenantId
     * @return
     */
    MessageInfo getMessageByKey(String messageTopic, String messageKey, String messageHeader, Long tenantId);

    /**
     * 通过消息头删除消息
     * @param messageTopic
     * @param messageHeader
     * @param tenantId
     * @return
     */
    void deleteMessageByHeader(String messageTopic, String messageHeader, Long tenantId);
}
